/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.corba.idl.src; public class MemberElement extends IDLElement { IDLType type; static final long serialVersionUID =225631314107467399L; public MemberElement (int id) { super(id); } public MemberElement (IDLParser p, int id) { super(p, id); } public void setType (IDLType t) { type = t; } public IDLType getType () { return type; } /* public void jjtSetParent (Node n) { super.jjtSetParent (n); } */ public void jjtClose () { //System.out.println ("MemberElement.jjtClose ()"); super.jjtClose (); // remove all children of type Identifier /* java.util.Vector tmp_members = getMembers (); for (int i=0; i<tmp_members.size (); i++) { if (tmp_members.elementAt (i) instanceof Identifier) { tmp_members.removeElementAt (i); System.out.println ("remove element at " + i + " from " + getType ()); } } */ /* public void jjtSetParent (Node n) { super.jjtSetParent (n); */ /* if (getMember (getMembers ().size () - 1) instanceof Identifier) setName (((Identifier)getMember (getMembers ().size () - 1)).getName ()); */ if (getMember (0) instanceof DeclaratorElement) { for (int i = 0; i<getMembers ().size (); i++) { //System.out.println (((DeclaratorElement)getMember (i)).getName () // + " set type " + getType ()); ((DeclaratorElement)getMember (i)).setType (getType ()); } } if (getMember (0) instanceof TypeElement && !(getMember (0) instanceof DeclaratorElement)) { // first is struct, enum or union //Type type = ((TypeElement)getMember (0)).getType (); IDLType type = new IDLType (-1, ((TypeElement)getMember (0)).getName ()); for (int i = 1; i<getMembers ().size (); i++) ((DeclaratorElement)getMember (i)).setType (type); } if (getMember (0) instanceof Identifier) { //String type = ((Identifier)getMember (0)).getName (); for (int i = 1; i<getMembers ().size (); i++) if (getMember (i) instanceof DeclaratorElement) { // this is because of scoped names in Member //((DeclaratorElement)getMember (i)).setType (type); ((DeclaratorElement)getMember (i)).setType (getType ()); } } } }